// 导入express 模块
const express = require('express')
// 创建 express 服务器实例
const app = express()

// 导入处理 querystring 的 Node.js 内置模块
const qs = require('querystring')

app.use(function(req, res, next) {
	// 中间件的业务逻辑
    // 定义变量, 用来存储客户端发送过来的请求体数据
    let str = ''
    // 监听 req 对象的 data 事件(客户端发送过来的新的请求体数据)
    req.on('data',(chunk)=>{
        // 拼接请求体数据,隐式转换为字符串
        str += chunk
    })
    // 监听 req 对象的 end 事件(请求体发送完毕后自动触发)
    req.on('end',(chunk)=>{
        // 拼接请求体数据,隐式转换为字符串
        // console.log(str)
        // TOD0:把字符串格式的请求体数据。解析成对象格式
        // 调用 qs.parse() 方法,把查询字符串解析为对象
        const body = qs.parse(str)
        console.log(body);
        req.body = body  // 将解析出来的请求体对象,挂载为 req.body 属性
  	    next()   // 调用next() 函数结束逻辑
    })
})
app.post('/user',(req, res)=>{
    console.log(req.body);
    res.send(req.body)
})
// 启动web服务器
app.listen(80,()=>{
    console.log('express server running at http://127.0.0.1:80');
})